/*
 * Copyright 2011 Jonathan Komorek
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

package org.jkomorek.eurl.selenium.commands;

import org.jkomorek.eurl.selenium.ScriptRunner;
import org.jkomorek.eurl.selenium.Step;
import org.jkomorek.eurl.selenium.exceptions.ScriptAssertionFailedException;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;


public class AssertTextPresent extends Step {

    @Override
    public void execute(ScriptRunner scriptRunner) {
        System.out.println("About to assert text is present [" + target + "]");
        try {
            WebElement bodyTag = scriptRunner.getWebDriver().findElement(By.tagName("body"));
            if (!bodyTag.getText().contains(target)) throw new ScriptAssertionFailedException("Failed to find text ["+target+"] on page");
         } catch(NoSuchElementException e) {
            throw new ScriptAssertionFailedException("Failed to find text ["+target+"] on page", e);
        }
    }

}
